package business.order;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import batch.execution.AbstractBusiness;

public class OrderProcessByInterface extends AbstractBusiness {
	public void initOrderProcess(OrderSVO svo) {
		debug("start " + this.getClass().getName());
	}
	
	public List<OrderVO> selectOrderInterfaceList(OrderSVO svo) {
		List<OrderVO> list = new ArrayList<OrderVO>();
		
		OrderVO vo = new OrderVO();
		vo.setIfId("order010001001010");
		vo.setCompany("samsung sds");
		vo.setItem("paper");
		vo.setQuantity(BigDecimal.valueOf(1));
		vo.setPerson("richard");
		list.add(vo);

		OrderVO voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order020002002020");
		voo.setItem("coffee");
		voo.setQuantity(BigDecimal.valueOf(2));
		voo.setPerson("tom");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order030003003030");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(3));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order040004004040");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(4));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order050005005050");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(5));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order060006006060");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(6));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order070007007070");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(7));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order080008008080");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(8));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order090009009090");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(9));
		voo.setPerson("bob");
		list.add(voo);
		
		voo = new OrderVO();
		voo.fromMap(vo.toMap());
		voo.setIfId("order000000000000");
		voo.setItem("keyboard");
		voo.setQuantity(BigDecimal.valueOf(10));
		voo.setPerson("bob");
		list.add(voo);
		
		return list;
	}
	
	public String checkOrderQtyValidation(OrderVO vo) {
		if( BigDecimal.ZERO.compareTo( vo.getQuantity() ) >= 0 ) {
			error("negative quantity !!!");
			return "break";
		} else {
			debug("valid quantity.");
			return null;
		}
	}
	
	public String checkCompanyValidation(OrderVO vo) {
		if( StringUtils.isBlank(vo.getCompany()) ) {
			error("there is not companny");
			return "break";
		}
		debug("valid company");
		return null;
	}

	public String checkItemValidation(OrderVO vo) {
		if( StringUtils.isBlank(vo.getItem()) ) {
			error("there is not item");
			return "break";
		}
		debug("valid item");
		return null;
	}

	public String checkPersonValidation(OrderVO vo) {
		if( StringUtils.isBlank(vo.getPerson()) ) {
			error("there is not person");
			return "break";
		}
		debug("valid person");
		return null;
	}

	public void insertOrderIntoDB(OrderVO vo) {
		System.out.println("[" + vo.getIfId() + "]");
		System.out.println("[Insert]" + vo.getCompany());
		System.out.println("[Insert]" + vo.getItem());
		System.out.println("[Insert]" + vo.getQuantity());
		System.out.println("[Insert]" + vo.getPerson());
	}
	
}
